package cn.iocoder.yudao.module.member.dal.dataobject.memberconf;

import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
import com.baomidou.mybatisplus.annotation.KeySequence;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.*;

import java.math.BigDecimal;

/**
 * 会员主配置 DO
 *
 * @author doock
 */
@TableName("member_conf")
@KeySequence("member_conf_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库，可不写。
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class MemberConfDO extends BaseDO {

    /**
     * 主键ID
     */
    @TableId
    private Long id;
    /**
     * 会员id
     */
    private Long userId;
    /**
     * 是否开通实物料业务（√/×）
     */
    private Boolean physicalMetal;

    private Boolean exchangeMetal;
    /**
     * 是否开通锁价买料业务（√/×）
     */
    private Boolean priceLockBuy;
    /**
     * 是否开通锁价卖料业务（√/×）
     */
    private Boolean priceLockSell;
    /**
     * 是否开通提料结价业务（√/×）
     */
    private Boolean takeMaterial;
    /**
     * 是否开通存料结价业务（√/×）
     */
    private Boolean storeMaterial;
    /**
     * 是否开启自动派单（√/×）
     */
    private Boolean autoDispatchOrder;
    /**
     * 是否需要实名认证（√/×）
     */
    private Boolean authIdentity;
    /**
     * 是否允许定金转积分（√/×）
     */
    private Boolean depositToPoints;
    /**
     * 是否允许积分转定金（√/×）
     */
    private Boolean pointsToDeposit;
    /**
     * 是否允许拆分定金（√/×）
     */
    private Boolean splitDeposit;
    /**
     * 是否允许不补定金拆定金（√/×）
     */
    private Boolean splitDepositWithoutReplenish;
    /**
     * 是否显示风控分析报表（√/×）
     */
    private Boolean showRiskReport;
    /**
     * 自动补定金提醒方式（短信/邮件等）
     */
    private Integer autoReminder;
    /**
     * 借款额度（单位：元）
     */
    private BigDecimal loanLimit;
    /**
     * 结算方式（单笔结算/批量结算）
     */
    private Integer settlementMethod;
    /**
     * 自动结算比例（0-100%）
     */
    private BigDecimal autoSettlementRatio;
    /**
     * 自动补定金比例（0-100%）
     */
    private BigDecimal autoDepositRatio;
    /**
     * 是否自动补定金（√/×）
     */
    private Boolean autoDeposit;
    /**
     * 最小下单间隔（秒）
     */
    private Integer minOrderInterval;

}